home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus 2004 #2 / Amiga Plus CD - 2004 - No. 02.iso / AmigaPlus / Tools / Development / RxMUI / Examples / SpeedBarConf.rexx < prev    next >
Encoding:
OS/2 REXX Batch file  |  2004-01-31  |  8.9 KB  |  283 lines

  1. /* SpeedBar configuration example macro */
  2.  
  3. signal on halt
  4. signal on break_c
  5.  
  6. call Init
  7. call CreateApp
  8. call HandleApp
  9.  
  10. /***********************************************************************/
  11. Init: procedure expose expose global.
  12.     l="rmh.library";if ~show("L",l) then;if ~addlib(l,0,-30) then exit
  13.     if AddLibrary("rxmui.library")~=0 then exit
  14.     call ProgDir()
  15.     return
  16. /***********************************************************************/
  17. CreateApp: procedure expose global.
  18.  
  19.     app.Title="SpeedBarConf"
  20.     app.Version="$VER: SpeedBarConf 1.1 (27.6.2002)"
  21.     app.Copyright="Copyright 2002 by Alfonso Ranieri"
  22.     app.Author="Alfonso Ranieri"
  23.     app.Description="SpeedBar configuration example macro"
  24.     app.Base="BARCONF"
  25.  
  26.     app.MenuStrip="strip"
  27.      strip.0="mproject"
  28.       mproject.Title="Project"
  29.       mproject.class="menu"
  30.        mproject.0=menuitem("mabout","?\About...")
  31.        mproject.1=menuitem("maboutrxmui","X\About RxMUI...")
  32.        mproject.2=menuitem("maboutmui","!\About MUI...")
  33.        mproject.3=menuitem("","BAR")
  34.        mproject.4=menuitem("mhide","H\Hide")
  35.        mproject.5=menuitem("","BAR")
  36.        mproject.6=menuitem("mquit","Q\Quit")
  37.  
  38.     app.SubWindow="win"
  39.      win.ID="MAIN"
  40.      win.Title="SpeedBar configuration"
  41.      win.Contents="mgroup"
  42.  
  43.       mgroup.0="hg"
  44.        hg.Class="group"
  45.        hg.Horiz=1
  46.  
  47.         hg.0="bg"
  48.          bg.Class="group"
  49.  
  50.           bg.0="lg"
  51.            lg.Class="group"
  52.            lg.Horiz=1
  53.             lg.0="fromlv"
  54.              fromlv.Class="NListview"
  55.              fromlv.FrameTitle="Available buttons"
  56.              fromlv.DragType="Immediate"
  57.              fromlv.ControlChar="1"
  58.              fromlv.List="fromList"
  59.               fromList.DragSortable=1
  60.               fromList.Format=","
  61.               fromList.MinColCompare=1
  62.               fromList.Image.0="im0"
  63.                im0.Class="picture"
  64.                im0.Source="PROGDIR:Pics/Back"
  65.                im0.Transparent=1
  66.               fromList.Image.1="im1"
  67.                im1.Class="picture"
  68.                im1.Source="PROGDIR:Pics/Find"
  69.                im1.Transparent=1
  70.               fromList.Image.2="im2"
  71.                im2.Class="picture"
  72.                im2.Source="PROGDIR:Pics/Forward"
  73.                im2.Transparent=1
  74.               fromList.Image.3="im3"
  75.                im3.Class="picture"
  76.                im3.Source="PROGDIR:Pics/Home"
  77.                im3.Transparent=1
  78.               fromList.Image.4="im4"
  79.                im4.Class="picture"
  80.                im4.Source="PROGDIR:Pics/Reload"
  81.                im4.Transparent=1
  82.               fromList.Image.5="im5"
  83.                im5.Class="picture"
  84.                im5.Source="PROGDIR:Pics/Spacer"
  85.                im5.Transparent=1
  86.               fromList.Image.6="im6"
  87.                im6.Class="picture"
  88.                im6.Source="PROGDIR:Pics/Stop"
  89.                im6.Transparent=1
  90.  
  91.             lg.1="rec"
  92.              rec.class="rectangle"
  93.              rec.weight=5
  94.  
  95.             lg.2="tolv"
  96.              tolv.Class="NListview"
  97.              tolv.FrameTitle="Bar buttons"
  98.              tolv.DragType="Immediate"
  99.              tolv.List="toList"
  100.               toList.DragSortable=1
  101.               toList.Format=","
  102.               toList.Image.0="im0"
  103.               toList.Image.1="im1"
  104.               toList.Image.2="im2"
  105.               toList.Image.3="im3"
  106.               toList.Image.4="im4"
  107.               toList.Image.5="im5"
  108.               toList.Image.6="im6"
  109.  
  110.           bg.1="vg"
  111.            vg.Class="group"
  112.            vg.Frame="group"
  113.            vg.FrameTitle="Appareance"
  114.            vg.Background="groupback"
  115.             vg.0="vg0"
  116.              vg0.Class="group"
  117.              vg0.Horiz=1
  118.               vg0.0=Label("Toolbar appears as")
  119.               vg0.1=MakeObj("vm","Cycle","TextGfx|Gfx|Text")
  120.             vg.1="vg1"
  121.              vg1.Class="group"
  122.              vg1.Horiz=1
  123.               vg1.0=Label("Borderless")
  124.               vg1.1=Checkmark("bl")
  125.               vg1.2=Hspace()
  126.               vg1.3=Label("Highlight")
  127.               vg1.4=Checkmark("su")
  128.               vg1.5=Hspace()
  129.               vg1.6=Label("Raised")
  130.               vg1.7=Checkmark("ra")
  131.               vg1.8=Hspace()
  132.               vg1.9=Label("Small")
  133.               vg1.10=Checkmark("sm")
  134.               vg1.11=Hspace()
  135.               vg1.12=Label("Vert")
  136.               vg1.13=Checkmark("ve")
  137.  
  138.         hg.1="cg"
  139.          cg.Class="group"
  140.          cg.Frame="virtual"
  141.          cg.Background="groupback"
  142.          cg.Weight=15
  143.           cg.0=Button("reset","_Reset")
  144.           cg.1=Button("test","_Test")
  145.           cg.2=VSpace()
  146.           cg.3=Button("cancel","_Cancell")
  147.  
  148.     call NewObj("Application","app")
  149.  
  150.     call DandD("fromList","fromList","NoSelf")
  151.     call DandD("fromList","toList")
  152.     call DandD("toList","fromlv")
  153.  
  154.     call Notify("win","CloseRequest",1,"app","returnid","quit")
  155.     call Notify("mabout","menutrigger","everytime","app","about","win")
  156.     call Notify("maboutrxmui","menutrigger","everytime","app","aboutrxmui","win")
  157.     call Notify("maboutmui","menutrigger","everytime","app","aboutmui","win")
  158.     call Notify("mhide","menutrigger","everytime","app","set","iconified",1)
  159.     call Notify("mquit","menutrigger","everytime","app","returnid","quit")
  160.  
  161.     call Notify("fromList","DoubleClick","Everytime","app","return","call doubleClick('FROMLIST','TOLIST')")
  162.     call Notify("toList","DoubleClick","Everytime","app","return","call doubleClick('TOLIST','FROMLIST')")
  163.  
  164.     call Notify("reset","pressed",0,"app","return","call resetLists")
  165.     call Notify("test","pressed",0,"app","return","call testfun")
  166.     call Notify("cancel","pressed",0,"app","returnid","quit")
  167.  
  168.     call resetLists
  169.     call set("win","open",1)
  170.  
  171.     return
  172. /**************************************************************************/
  173. handleApp: procedure expose global.
  174.     ctrl_c=2**12
  175.     do forever
  176.         call NewHandle("app","h",ctrl_c)
  177.         if and(h.signals,ctrl_c)>0 then exit
  178.         select
  179.             when h.event="QUIT" then exit
  180.             when h.event="DROPEVENT" then call dropFun(h.from,h.to)
  181.             otherwise interpret h.event
  182.         end
  183.     end
  184. /***********************************************************************/
  185. halt:
  186. break_c:
  187.     exit
  188. /**************************************************************************/
  189. resetLists: procedure expose global.
  190.     s.0="[Image im0]|Back"
  191.     s.1="[Image im1]|Find"
  192.     s.2="[Image im2]|Forward"
  193.     s.3="[Image im3]|Home"
  194.     s.4="[Image im4]|Reload"
  195.     s.5="[Image im5]|Spacer"
  196.     s.6="[Image im6]|Stop"
  197.     call DoMethod("fromList","ClearAddStem","s")
  198.     call DoMethod("toList","Clear")
  199.     return
  200. /**************************************************************************/
  201. dropFun: procedure expose global.
  202. parse arg from,to
  203.     call DoMethod(from,"GetEntry","Active","e")
  204.     parse var e im "|" name
  205.     if to="TOLIST" then do
  206.         if name~="Spacer" then call DoMethod("fromList","Remove","Active")
  207.         call DoMethod("toList","Insert",e,xget("toList","DropMark"))
  208.     end
  209.     else do
  210.         call DoMethod("toList","Remove","Active")
  211.         if name~="Spacer" then call DoMethod("fromList","Insert",e,"Sorted")
  212.     end
  213.     return
  214. /**************************************************************************/
  215. doubleClick: procedure expose global.
  216. parse arg from,to
  217.     call DoMethod(from,"GetEntry","Active","e")
  218.     parse var e im "|" name
  219.     if to="TOLIST" then do
  220.         if name~="Spacer" then call DoMethod("fromList","Remove","Active")
  221.         call DoMethod("toList","Insert",e,"Bottom")
  222.     end
  223.     else do
  224.         call DoMethod("toList","Remove","Active")
  225.         if name~="Spacer" then call DoMethod("fromList","Insert",e,"Sorted")
  226.     end
  227.     return
  228. /**************************************************************************/
  229. testFun: procedure expose global.
  230.     call set("app","Sleep",1)
  231.  
  232.     if global.twin=1 then do
  233.         call Dispose("twin")
  234.         global.twin=0
  235.     end
  236.  
  237.     n=xget("toList","entries")
  238.     if n=0 then do
  239.         call set("app","Sleep",0)
  240.         return
  241.     end
  242.  
  243.     twin.ID="TWIN"
  244.     twin.Title="Test window"
  245.     twin.Contents="tgroup"
  246.  
  247.       speedbar.Class="speedbar"
  248.       speedbar.ImagesDrawer="PROGDIR:Pics"
  249.       speedbar.BarSpacer=1
  250.  
  251.       speedbar.Horiz=~xget("ve","selected")
  252.       speedbar.ViewMode=xget("vm","active")
  253.       speedbar.Borderless=xget("bl","selected")
  254.       speedbar.Sunny=xget("su","selected")
  255.       speedbar.RaisingFrame=xget("ra","selected")
  256.       speedbar.SmallImages=xget("sm","selected")
  257.       speedbar.Layout="Left"
  258.  
  259.       do i=0 to n-1
  260.           call DoMethod("toList","GetEntry",i,"e")
  261.           parse var e im "|" name
  262.           speedbar.i.Img=name
  263.           if name="Spacer" then iterate
  264.           speedbar.i.Text=name
  265.       end
  266.  
  267.      tgroup.0="speedbar"
  268.  
  269.        spg.1=hvspace()
  270.  
  271.     if NewObj("window","twin")>0 then do
  272.         call set("app","Sleep",0)
  273.         return
  274.     end
  275.  
  276.     call add("app","twin")
  277.     call Notify("twin","CloseRequest",1,"app","return","if global.twin then call dispose('twin');global.twin=0")
  278.     call set("twin","open",1)
  279.     global.twin=1
  280.     call set("app","Sleep",0)
  281.     return
  282. /**************************************************************************/
  283.